﻿Imports Control_Vuelos_BL
Imports Control_Vuelos_BE

Public Class frmAdm_ManifiestoVuelo
    Private mCodViaje As String
    Private mCodReserva As String
    Private ReadOnly oProgramaViaje As New ProgramaViajeBL()
    Private pCodViaje As String
    Private ReadOnly oManifiesto As New ManifiestoBL()
    Private oCManifiesto As New C_ManifiestoBE()
    Private oDManifiesto As New D_ManifiestoBE()

    Private Sub frmAdm_ManifiestoVuelo_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        cbCodViaje.Properties.DataSource = oProgramaViaje.pr_Listar_ProgramaViaje(p_coduser, 1)
        cbCodViaje.Properties.View.BestFitColumns()
    End Sub

    Private Sub cbCodViaje_EditValueChanged(sender As System.Object, e As System.EventArgs) Handles cbCodViaje.EditValueChanged
        Dim edit As DevExpress.XtraEditors.GridLookUpEdit = CType(sender, DevExpress.XtraEditors.GridLookUpEdit)
        Dim row As DataRow = edit.Properties.View.GetDataRow(edit.Properties.View.FocusedRowHandle)
        If Not row Is Nothing Then
            gDesLugarOrigen.EditValue = row("DesLugarOrigen")
            gDesLugarDestino.EditValue = row("DesLugarDestino")
            gNroCupos.EditValue = row("NroCupos")
            gFchViaje.EditValue = row("FchViaje")
            gNomEmpresa.EditValue = row("NomEmpresa")
            pCodViaje = row("CodViaje")
        End If
    End Sub

    Private Sub cmdacpbtn_Click(sender As System.Object, e As System.EventArgs) Handles cmdacpbtn.Click
        If CodViaje = pCodViaje Then
            MessageBox.Show(" No se puede mover al pasajero a su mismo vuelo ", "Manifiesto", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Return
        End If
        ' si esta vacia la reserva quiere decir que se cambiara de vuelo a todos los pasajeros
        If CodReserva.Trim = "" Then
            Dim v_C_Manifiesto As C_ManifiestoBE = oManifiesto.pr_RecuperarCabecera(CodViaje)
            v_C_Manifiesto.CodViaje = pCodViaje
            v_C_Manifiesto.FchCreado = DateTime.Now
            v_C_Manifiesto.CodCreadopor = p_coduser
            v_C_Manifiesto.CodModificadopor = p_coduser
            v_C_Manifiesto.FchModificado = DateTime.Now
            oManifiesto.pr_UpdateCabeceraManifiestoViaje(v_C_Manifiesto)
            If oManifiesto.pr_UpdateDetalleManifiestoViaje(CodViaje, CodReserva, pCodViaje) Then

                Close()
            End If
        Else
            ' paso solo al pasajero seleccionado
            oCManifiesto = oManifiesto.pr_RecuperarCabecera(CodViaje)
            If oCManifiesto.EstadoManifiesto <> "0" Then
                MessageBox.Show(" No se puede mover al pasajero porque el Manifiesto está Cerrado ", "Manifiesto", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return
            End If
            oDManifiesto = oManifiesto.pr_RecuperarDetalle(CodViaje, CodReserva)
            If oDManifiesto.FlgLock = 1 Then
                MessageBox.Show(" El Pasajero está bloqueado por estar confirmado ", "Manifiesto", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Return
            End If
            If oManifiesto.pr_UpdateDetalleManifiestoViaje(CodViaje, CodReserva, pCodViaje) Then
                Close()
            End If
        End If
    End Sub

    Private Sub cbCodViaje_Popup(sender As Object, e As System.EventArgs) Handles cbCodViaje.Popup
        Dim popup As DevExpress.Utils.Win.IPopupControl = CType(sender, DevExpress.Utils.Win.IPopupControl)
        Dim popupForm As DevExpress.XtraEditors.Popup.PopupGridLookUpEditForm = CType(popup.PopupWindow, DevExpress.XtraEditors.Popup.PopupGridLookUpEditForm)
        popupForm.Width = CType(sender, Control).Width
    End Sub

#Region "Entidades"

    Public Property CodViaje() As String
        Get
            Return mCodViaje
        End Get
        Set(value As String)
            mCodViaje = value
        End Set
    End Property

    Public Property CodReserva() As String
        Get
            Return mCodReserva
        End Get
        Set(value As String)
            mCodReserva = value
        End Set
    End Property

#End Region

End Class